package com.solo.system.service;

import com.solo.common.core.base.service.BasicService;
import com.solo.system.api.entity.SysConfig;
import com.solo.system.model.config.req.ConfigCreateReq;
import com.solo.system.model.config.req.ConfigQueryReq;
import com.solo.system.model.config.req.ConfigUpdateReq;
import com.solo.system.model.config.resp.ConfigGetResp;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Collection;

/**
 * 系统配置 Service
 * @author 十一
 * @since 2023-10-18 16:33
 * 人生若只如初见，何事秋风悲画扇
 **/
public interface SysConfigService extends BasicService<SysConfig> {

    /**
     * 创建系统配置
     * @param req 系统配置创建对象
     * @return boolean
     */
    boolean create(ConfigCreateReq req);

    /**
     * 批量删除系统配置
     * @param configIds 配置ID
     * @return boolean
     */
    boolean delete(Collection<Long> configIds);

    /**
     * 更新系统配置
     * @param req 系统配置更新对象
     * @return boolean
     */
    boolean update(ConfigUpdateReq req);

    /**
     * 按键获取系统配置信息
     * @param key 钥匙
     * @return {@link ConfigGetResp }
     */
    ConfigGetResp getConfigByKey(String key);
    
    void importExcel(MultipartFile file) throws IOException;

    void exportExcel(HttpServletResponse response, ConfigQueryReq req) throws IOException;

}
